home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / comm / revrdist.sit / Local #includes / HyperXCmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-07-05  |  3.6 KB  |  106 lines  |  [TEXT/KAHL]

  1. /*
  2.     HyperXCmd.h  Definitions for calling all standard 
  3.     HyperCard callback routines from C.
  4.     ⌐Apple Computer, Inc. 1987
  5.     All Rights Reserved.
  6.  
  7.     See CFlash.C for an example of how to include this module in your 
  8.     C program.
  9.     
  10.     (Converted for THINK C 3.0 ... DRT)
  11. */
  12.  
  13.  
  14. typedef struct XCmdBlock {
  15.     short    paramCount;     
  16.     Handle  params[16];
  17.     Handle  returnValue;      
  18.     Boolean    passFlag; 
  19.       
  20.     ProcPtr    entryPoint;    /* to call back to HyperCard */
  21.     short    request;  
  22.     short    result;  
  23.     long    inArgs[8];
  24.     long    outArgs[4];
  25.    } XCmdBlock, *XCmdBlockPtr;
  26.    
  27. typedef struct Str31s {
  28.     char    guts[32];
  29.     } Str31s, *Str31sPtr;
  30.  
  31.   /*result codes */
  32. #define    xresSucc         0
  33. #define    xresFail         1 
  34. #define    xresNotImp         2 
  35.   
  36.   /* request codes */
  37. #define    xreqSendCardMessage        1 
  38. #define    xreqEvalExpr            2 
  39. #define    xreqStringLength        3 
  40. #define    xreqStringMatch            4 
  41. #define xreqSendHCMessage        5
  42. #define    xreqZeroBytes             6 
  43. #define    xreqPasToZero            7 
  44. #define    xreqZeroToPas            8 
  45. #define    xreqStrToLong            9 
  46. #define    xreqStrToNum            10 
  47. #define    xreqStrToBool            11 
  48. #define    xreqStrToExt            12 
  49. #define    xreqLongToStr            13 
  50. #define    xreqNumToStr            14 
  51. #define    xreqNumToHex            15 
  52. #define    xreqBoolToStr            16 
  53. #define    xreqExtToStr            17 
  54. #define    xreqGetGlobal            18 
  55. #define    xreqSetGlobal            19 
  56. #define    xreqGetFieldByName        20 
  57. #define    xreqGetFieldByNum        21 
  58. #define    xreqGetFieldByID        22 
  59. #define    xreqSetFieldByName        23 
  60. #define    xreqSetFieldByNum        24 
  61. #define    xreqSetFieldByID        25 
  62. #define    xreqStringEqual           26 
  63. #define    xreqReturnToPas           27 
  64. #define    xreqScanToReturn          28 
  65. #define    xreqScanToZero            39   /* was suppose to be 29!  Oops! */
  66.  
  67.  
  68. /* Forward definitions of glue routines.  Main program 
  69.     must include XCmdGlue.inc.c.  See XCmdGlue.inc.c for 
  70.     documentation of each routine.  */
  71. typedef void (*MyProcPtr) ();
  72.  
  73. pascal void SendCardMessage(XCmdBlockPtr, StringPtr msg);
  74. pascal Handle EvalExpr(XCmdBlockPtr,StringPtr expr);
  75. pascal long StringLength(XCmdBlockPtr,StringPtr strPtr);
  76. pascal Ptr StringMatch(XCmdBlockPtr,StringPtr pattern,Ptr target);
  77. pascal void ZeroBytes(XCmdBlockPtr,Ptr dstPtr,long longCount);
  78. pascal Handle PasToZero(XCmdBlockPtr,StringPtr pasStr);
  79. pascal void ZeroToPas(XCmdBlockPtr,char *zeroStr,StringPtr pasStr);
  80. pascal long StrToLong(XCmdBlockPtr,Str31s *strPtr);
  81. pascal long StrToNum(XCmdBlockPtr,Str31s *str);
  82. pascal Boolean StrToBool(XCmdBlockPtr,Str31s *str);
  83. pascal void StrToExt(XCmdBlockPtr,Str31s *str,double *myext);
  84. pascal void LongToStr(XCmdBlockPtr,long posNum,Str31s *mystr);
  85. pascal void NumToStr(XCmdBlockPtr,long num,Str31s *mystr);
  86. pascal void NumToHex(XCmdBlockPtr,long num,short nDigits,Str31s *mystr);
  87. pascal void BoolToStr(XCmdBlockPtr,Boolean,Str31s *mystr);
  88. pascal void ExtToStr(XCmdBlockPtr,double *myext,Str31s *mystr);
  89. pascal Handle GetGlobal(XCmdBlockPtr,StringPtr globName);
  90. pascal void SetGlobal(XCmdBlockPtr,StringPtr globName,Handle globValue);
  91. pascal Handle GetFieldByName(XCmdBlockPtr,Boolean cardFieldFlag,
  92.     StringPtr fieldName);
  93. pascal Handle GetFieldByNum(XCmdBlockPtr,Boolean cardFieldFlag,
  94.     short fieldNum);
  95. pascal Handle GetFieldByID(XCmdBlockPtr,Boolean cardFieldFlag,
  96.     short fieldID);
  97. pascal void SetFieldByName(XCmdBlockPtr,Boolean cardFieldFlag,
  98.     StringPtr fieldName,Handle fieldVal);
  99. pascal void SetFieldByNum(XCmdBlockPtr,Boolean cardFieldFlag,
  100.     short fieldNum,Handle fieldVal);
  101. pascal void SetFieldByID(XCmdBlockPtr,Boolean cardFieldFlag,
  102.     short fieldID,Handle fieldVal);
  103. pascal Boolean StringEqual(XCmdBlockPtr,Str31s *str1,Str31s *str2);
  104. pascal void ReturnToPas(XCmdBlockPtr,Ptr zeroStr,StringPtr pasStr);
  105. pascal void ScanToReturn(XCmdBlockPtr,Ptr *scanHndl);
  106. pascal void ScanToZero(XCmdBlockPtr,Ptr *scanHndl);